var token;
//接口头

// 请求域名
// 测试
var URL = 'http://test.customer.ccxapp.com/';
// 正式
// var URL = 'https://master.ccxapp.com/';
//
// var LURL = 'http://user.ccx.com/';
// var URL = 'http://test.user.ccxapp.com/';
var Headers;
//初始化方法
function init() {
    getToken();
    CheckToken();
    // alert(JSON.stringify(Headers) )
    console.log("TOKEN: " + token);
    console.log("Headers: " + JSON.stringify(Headers))
}
var BASE = {
    'MYajax': function() {},
}


/*
全局ajax方法，参数param：
{
  'pathName':'selectVideoInfoAll',   路径
  'ajaxData':{
              'pageNum':1,
              'pageSize':5,
            },                       ajax传入参数
  'method':video_Method.video_item   执行方法
}
*/

// 自定义ajax
// function fnGetNewData() {
//   BASE.MYajax({
//     'pathName': 'master/Balance', //请求路径
//     'method': 'get',
//     'ajaxData': {},
//     'method': fnGetInitData //调用函数
//   });
// }
/*表单获取*/
// 要获取的inut框的值的class
function fromsub(inputClass) {
    var tagElements = document.getElementsByClassName(inputClass); //这里我把所有我要获取值得属性都使用了同一个类来标识；
    var json = {};
    for (var j = 0; j < tagElements.length; j++) {
        var name = tagElements[j].name; //这里就是要获取得name属性，将此name属性作为json对象得key；
        var value = tagElements[j].value;
        json[name] = value;  //注意这里必须要使用这种方式给json赋值。如果使用json.name=value得话你会发现你所有的key都是一个字符串name，而不是name代表的值
    }
    return json;
}

BASE.MYajax = function(param) {
    getToken();
    // alert(JSON.stringify(Headers))
    api.ajax({
        url: URL + param.pathName,
        // methods: get / post  (string)
        method: param.methods,
        headers: Headers,
        report: param.report,
        // dataType: 'json', //返回类型
        data: param.ajaxData, //传递参数，body如果传json类型，header中必须加上传参类             型'Content-Type': "application/json"
        returnAll: true, //是否全部返回（包括请求头）
    }, function(ret, err) {
      console.log("URL "+URL);
      console.log("ajax请求: " + JSON.stringify(param));
        console.log("回调成功：" + JSON.stringify(ret));
        console.log('失败' + JSON.stringify(err));
        var myDate = new Date();
        var mytime = myDate.toLocaleTimeString();
        //获取当前时间
        //获取日期与时间
        // console.log("进入ajax :"+ mytime);
        if (ret) {
            // console.log("回调成功：" + JSON.stringify(ret));
            // 判断是否需要替换新的token
            if (ret.headers) {
                if (ret.headers.Authorization) {
                    token = ret.headers.Authorization;
                    // alert('需要获取新的token： ' + token)
                    $api.setStorage('token', token);
                }
            }
            if (!param.report) {
                ret = ret.body;
            }
            if (param.method) {
                console.log("有回调方法");
                param.method(ret, err); //调用方法
                return;
            }
            console.log("无回调方法");
        } else {
            err = err.body
            console.log('失败' + JSON.stringify(err));
            api.toast({ //错误提示信息
                msg: err.message, //错误信息
                duration: 2000, //显示时间长度
                location: 'bottom' //显示位置
            });
            return;
        }
    });
    // console.log(JSON.stringify(Headers));
}

// 获取token
function getToken() {
    token = $api.getStorage('token');
    Headers = {
        'AUTHORIZATION': 'Bearer ' + token
    }
    return token;
}

// 检查token
function CheckToken() {
    token = getToken();
    // console.log('top.CheckToekn:'+token)
    if (!token) {
        api.openWin({
            name: 'Login',
            url: 'Login.html',
            pageParam: {
                name: 'test'
            }
        });
        $api.toast('登陆已失效', '请退出重新登陆', 2000);
    }
}
// 返回提示  reToast(ret, err)
function reToast(ret, err) {
    var remessage;
    if (ret) {
        api.toast({
            msg: "车车侠：" + ret.message,
            duration: 2000,
            location: 'bottom',
            global: true,
        });
        if (ret.code == 250) {
            api.openWin({
                name: 'Login',
                url: 'Login.html',
            });
        }
    } else {
        api.toast({
            msg: "车车侠：" + err.message,
            duration: 2000,
            location: 'bottom',
            global: true,
        });
    }
    console.log("reToast:" + JSON.stringify(ret));
    console.log("reToast:" + JSON.stringify(err));
}

//加载头部
function headInner(e) {
    var inner = document.body.innerHTML;

    //title部分
    if (!e.title || e.title == 'null' || e.title == 'defined' || e.title == '') {
        e.title = document.getElementsByTagName("title")[0].innerHTML;
    }
    var headStr = '<div class="public-head" id="public-head"><div>' + e.headl + '</div><div>' +
        e.title + '</div><div>' + e.headr + '</div></div><div class="contain" id="contain"></div>';
    document.body.innerHTML = headStr;
    //color部分
    //不等于null 空
    if (e.color != 'null' && e.color != '') {
        document.getElementById("public-head").style.backgroundColor = e.color;
    }
    reApiready();
    var contain = document.getElementById('contain');
    contain.innerHTML = inner;
    //contain的padding部分
    if (e.padding != 'null' && e.padding != '') {
        document.getElementById("contain").style.padding = e.padding;
    }
}

function reApiready() {
    var u = navigator.userAgent;
    var publicHead = document.getElementsByClassName('public-head');
    var contain = document.getElementById('contain');
    var containclass = document.getElementsByClassName('contain');
    const isIOS = /\(i[^;]+;( U;)? CPU.+Mac OS X/.test(u);

    if (isIOS) {

        const screen = window.screen;
        var headpaddtop = '';
        var containtop = '';
        /*有刘海*/
        if (screen.width === 375 && screen.height === 812 || screen.height === 375 && screen.width === 812 ||
            screen.width === 414 && screen.height === 896 || screen.height === 414 && screen.width === 896) {
            headpaddtop = '44' + 'px';
            containtop = '79' + 'px';
        } else { /*无刘海*/
            headpaddtop = '22' + 'px';
            containtop = '57' + 'px';
        }

        contain.style.marginTop = containtop;
        for (var i = 0; i < publicHead.length; i++) {
            publicHead[0].style.paddingTop = headpaddtop;
        }
        for (var i = 0; i < containclass.length; i++) {
            containclass[0].style.marginTop = containtop;
        }

        return;
    }
}
